<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>解构赋值</title>
</head>
<body>
    
</body>
<script>
    // es6
    // 什么是解构赋值？
    // 快速从数组或者对象等容器中提取成员的一种语法方式

    const obj = {
        name:"shane",
        age:20,
        gender:'男'
    }

    //es5
    //从对象中提取成员  对象名.属性
    // var names = obj.name;
    // var ages = obj.age;
    // var genders = obj.gender;
    // console.log(names,ages,genders);

    //es6 对象的解构
    // 属性名必须相同，位置可以改变
    // let {names,gender,age} = obj;
    // console.log(name,age,gender);
    // 想要换个名字，如果我想要重新等一解构过程中的变量名
    let {name:newName} = obj;
    console.log(newName);


    //es5
    //从数组中提取成员  数组名[下标]
    var arr = ['张三','李四','王五'];
    // var a = arr[0];
    // var b = arr[1];
    // var c = arr[2];
    // console.log(a,b,c);
    
    //es6 数组的解构
    let [a,b,c,d] = arr;
    console.log(a,b,c,d);

    // 解构赋值就是把数据解构分解，然后给变量赋值
    // 如果解构不成功，则返回undefined
    // 对象解构用“{}”，数组解构用“【】”，

    // Math.max  Math 是js内置对象
    let {max,min} = Math;
    console.log(min(1,2,3,4,5));

</script>
</html>